package com.lg.utils.hutool.util;

import cn.hutool.system.*;

/**
 * 获取系统资源
 */
public class SystemResourceUtils {

    public static void main(String[] args) {
        JvmSpecInfo jvmSpecInfo = SystemUtil.getJvmSpecInfo();
        System.out.println(jvmSpecInfo);

        JvmInfo jvmInfo = SystemUtil.getJvmInfo();
        System.out.println(jvmInfo);

        OsInfo osInfo = SystemUtil.getOsInfo();
        System.out.println(osInfo);


        UserInfo userInfo = SystemUtil.getUserInfo();
        System.out.println(userInfo);

        HostInfo hostInfo = SystemUtil.getHostInfo();
        System.out.println(hostInfo);

        RuntimeInfo runtimeInfo = SystemUtil.getRuntimeInfo();
        System.out.println(runtimeInfo);

        /**
         * Oshi是Java的免费基于JNA的操作系统和硬件信息库，Github地址是：https://github.com/oshi/oshi
         *
         * 它的优点是不需要安装任何其他本机库，并且旨在提供一种跨平台的实现来检索系统信息，例如操作系统版本，进程，内存和CPU使用率，磁盘和分区，设备，传感器等。
         *
         * 这个库可以监测的内容包括：
         *
         * 计算机系统和固件，底板
         * 操作系统和版本/内部版本
         * 物理（核心）和逻辑（超线程）CPU，处理器组，NUMA节点
         * 系统和每个处理器的负载百分比和滴答计数器
         * CPU正常运行时间，进程和线程
         * 进程正常运行时间，CPU，内存使用率，用户/组，命令行
         * 已使用/可用的物理和虚拟内存
         * 挂载的文件系统（类型，可用空间和总空间）
         * 磁盘驱动器（型号，序列号，大小）和分区
         * 网络接口（IP，带宽输入/输出）
         * 电池状态（电量百分比，剩余时间，电量使用情况统计信息）
         * 连接的显示器（带有EDID信息）
         * USB设备
         * 传感器（温度，风扇速度，电压）
         *
         * 也就是说配合一个前端界面，完全可以搞定系统监控了。
         *
         * toSee
         */

    }
}
